{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "import pandas as pd\n",
    "import numpy as np\n",
    "from glob import glob\n",
    "from IPython.display import display\n",
    "pd.set_option('display.max_columns', 99)\n",
    "pd.set_option('display.max_rows', 99)\n",
    "import EDA\n",
    "import utils\n",
    "#sorted(glob('../data/*'))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {
    "scrolled": false
   },
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "100%|██████████| 20/20 [00:07<00:00,  2.70it/s]\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>SK_ID_PREV</th>\n",
       "      <th>SK_ID_CURR</th>\n",
       "      <th>MONTHS_BALANCE</th>\n",
       "      <th>CNT_INSTALMENT</th>\n",
       "      <th>CNT_INSTALMENT_FUTURE</th>\n",
       "      <th>NAME_CONTRACT_STATUS</th>\n",
       "      <th>SK_DPD</th>\n",
       "      <th>SK_DPD_DEF</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>2197888</th>\n",
       "      <td>1369693</td>\n",
       "      <td>100001</td>\n",
       "      <td>-53</td>\n",
       "      <td>4.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>Completed</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4704415</th>\n",
       "      <td>1369693</td>\n",
       "      <td>100001</td>\n",
       "      <td>-54</td>\n",
       "      <td>4.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>Active</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7823681</th>\n",
       "      <td>1369693</td>\n",
       "      <td>100001</td>\n",
       "      <td>-55</td>\n",
       "      <td>4.0</td>\n",
       "      <td>2.0</td>\n",
       "      <td>Active</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8789081</th>\n",
       "      <td>1369693</td>\n",
       "      <td>100001</td>\n",
       "      <td>-56</td>\n",
       "      <td>4.0</td>\n",
       "      <td>3.0</td>\n",
       "      <td>Active</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7167007</th>\n",
       "      <td>1369693</td>\n",
       "      <td>100001</td>\n",
       "      <td>-57</td>\n",
       "      <td>4.0</td>\n",
       "      <td>4.0</td>\n",
       "      <td>Active</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "         SK_ID_PREV  SK_ID_CURR  MONTHS_BALANCE  CNT_INSTALMENT  \\\n",
       "2197888     1369693      100001             -53             4.0   \n",
       "4704415     1369693      100001             -54             4.0   \n",
       "7823681     1369693      100001             -55             4.0   \n",
       "8789081     1369693      100001             -56             4.0   \n",
       "7167007     1369693      100001             -57             4.0   \n",
       "\n",
       "         CNT_INSTALMENT_FUTURE NAME_CONTRACT_STATUS  SK_DPD  SK_DPD_DEF  \n",
       "2197888                    0.0            Completed       0           0  \n",
       "4704415                    1.0               Active       0           0  \n",
       "7823681                    2.0               Active       0           0  \n",
       "8789081                    3.0               Active       0           0  \n",
       "7167007                    4.0               Active       0           0  "
      ]
     },
     "execution_count": 2,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df = utils.read_pickles('../data/POS_CASH_balance').sort_values(['SK_ID_CURR', 'MONTHS_BALANCE'], ascending=[True, False])\n",
    "df.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "100%|██████████| 20/20 [00:04<00:00,  4.66it/s]\n"
     ]
    }
   ],
   "source": [
    "train = utils.load_train()\n",
    "df['train'] = 0\n",
    "df.loc[df['SK_ID_CURR'].isin(train.SK_ID_CURR), 'train'] = 1\n",
    "df_test = df[df['train']==0]\n",
    "df_train = df[df['train']==1]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Shape: (8543375, 9)\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>DataType</th>\n",
       "      <th>#Nulls</th>\n",
       "      <th>#Uniques</th>\n",
       "      <th>Min</th>\n",
       "      <th>Mean</th>\n",
       "      <th>Max</th>\n",
       "      <th>Std</th>\n",
       "      <th>top10 val</th>\n",
       "      <th>top10 cnt</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>SK_ID_PREV</th>\n",
       "      <td>int64</td>\n",
       "      <td>0</td>\n",
       "      <td>800337</td>\n",
       "      <td>1000001.0</td>\n",
       "      <td>1.903489e+06</td>\n",
       "      <td>2843499.0</td>\n",
       "      <td>535938.725528</td>\n",
       "      <td>[2162632, 1865399, 1186496, 2761490, 1190666, ...</td>\n",
       "      <td>[96, 96, 96, 96, 96, 96, 96, 96, 96, 96]</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>SK_ID_CURR</th>\n",
       "      <td>int64</td>\n",
       "      <td>0</td>\n",
       "      <td>289444</td>\n",
       "      <td>100002.0</td>\n",
       "      <td>2.784832e+05</td>\n",
       "      <td>456255.0</td>\n",
       "      <td>102708.673222</td>\n",
       "      <td>[265042, 309133, 127659, 197583, 185185, 20304...</td>\n",
       "      <td>[295, 246, 245, 245, 245, 244, 237, 235, 234, ...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>MONTHS_BALANCE</th>\n",
       "      <td>int64</td>\n",
       "      <td>0</td>\n",
       "      <td>96</td>\n",
       "      <td>-96.0</td>\n",
       "      <td>-3.494812e+01</td>\n",
       "      <td>-1.0</td>\n",
       "      <td>26.053718</td>\n",
       "      <td>[-10, -9, -11, -8, -12, -7, -13, -6, -14, -15]</td>\n",
       "      <td>[186735, 186189, 186017, 185268, 184595, 18161...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>CNT_INSTALMENT</th>\n",
       "      <td>float64</td>\n",
       "      <td>21863</td>\n",
       "      <td>72</td>\n",
       "      <td>1.0</td>\n",
       "      <td>1.703348e+01</td>\n",
       "      <td>84.0</td>\n",
       "      <td>12.004305</td>\n",
       "      <td>[12.0, 24.0, 10.0, 6.0, 18.0, 36.0, 8.0, 48.0,...</td>\n",
       "      <td>[2129879, 1281635, 1081012, 912524, 614578, 49...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>CNT_INSTALMENT_FUTURE</th>\n",
       "      <td>float64</td>\n",
       "      <td>21878</td>\n",
       "      <td>78</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.046808e+01</td>\n",
       "      <td>84.0</td>\n",
       "      <td>11.144076</td>\n",
       "      <td>[0.0, 4.0, 6.0, 5.0, 3.0, 2.0, 1.0, 10.0, 8.0,...</td>\n",
       "      <td>[1021934, 525573, 524893, 513463, 499025, 4699...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>NAME_CONTRACT_STATUS</th>\n",
       "      <td>object</td>\n",
       "      <td>0</td>\n",
       "      <td>9</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>['Active', 'Completed', 'Signed', 'Demand', 'R...</td>\n",
       "      <td>[7818577, 634872, 74625, 6110, 4591, 4221, 365...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>SK_DPD</th>\n",
       "      <td>int64</td>\n",
       "      <td>0</td>\n",
       "      <td>3358</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.190473e+01</td>\n",
       "      <td>4231.0</td>\n",
       "      <td>134.030213</td>\n",
       "      <td>[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]</td>\n",
       "      <td>[8284268, 18846, 15005, 12539, 10756, 9649, 84...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>SK_DPD_DEF</th>\n",
       "      <td>int64</td>\n",
       "      <td>0</td>\n",
       "      <td>1987</td>\n",
       "      <td>0.0</td>\n",
       "      <td>5.835209e-01</td>\n",
       "      <td>3373.0</td>\n",
       "      <td>30.421100</td>\n",
       "      <td>[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]</td>\n",
       "      <td>[8444265, 19080, 12710, 10134, 8285, 6991, 583...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>train</th>\n",
       "      <td>int64</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>1.0</td>\n",
       "      <td>1.000000e+00</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>[1]</td>\n",
       "      <td>[8543375]</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                      DataType  #Nulls  #Uniques        Min          Mean  \\\n",
       "SK_ID_PREV               int64       0    800337  1000001.0  1.903489e+06   \n",
       "SK_ID_CURR               int64       0    289444   100002.0  2.784832e+05   \n",
       "MONTHS_BALANCE           int64       0        96      -96.0 -3.494812e+01   \n",
       "CNT_INSTALMENT         float64   21863        72        1.0  1.703348e+01   \n",
       "CNT_INSTALMENT_FUTURE  float64   21878        78        0.0  1.046808e+01   \n",
       "NAME_CONTRACT_STATUS    object       0         9        NaN           NaN   \n",
       "SK_DPD                   int64       0      3358        0.0  1.190473e+01   \n",
       "SK_DPD_DEF               int64       0      1987        0.0  5.835209e-01   \n",
       "train                    int64       0         1        1.0  1.000000e+00   \n",
       "\n",
       "                             Max            Std  \\\n",
       "SK_ID_PREV             2843499.0  535938.725528   \n",
       "SK_ID_CURR              456255.0  102708.673222   \n",
       "MONTHS_BALANCE              -1.0      26.053718   \n",
       "CNT_INSTALMENT              84.0      12.004305   \n",
       "CNT_INSTALMENT_FUTURE       84.0      11.144076   \n",
       "NAME_CONTRACT_STATUS         NaN            NaN   \n",
       "SK_DPD                    4231.0     134.030213   \n",
       "SK_DPD_DEF                3373.0      30.421100   \n",
       "train                        1.0       0.000000   \n",
       "\n",
       "                                                               top10 val  \\\n",
       "SK_ID_PREV             [2162632, 1865399, 1186496, 2761490, 1190666, ...   \n",
       "SK_ID_CURR             [265042, 309133, 127659, 197583, 185185, 20304...   \n",
       "MONTHS_BALANCE            [-10, -9, -11, -8, -12, -7, -13, -6, -14, -15]   \n",
       "CNT_INSTALMENT         [12.0, 24.0, 10.0, 6.0, 18.0, 36.0, 8.0, 48.0,...   \n",
       "CNT_INSTALMENT_FUTURE  [0.0, 4.0, 6.0, 5.0, 3.0, 2.0, 1.0, 10.0, 8.0,...   \n",
       "NAME_CONTRACT_STATUS   ['Active', 'Completed', 'Signed', 'Demand', 'R...   \n",
       "SK_DPD                                    [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]   \n",
       "SK_DPD_DEF                                [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]   \n",
       "train                                                                [1]   \n",
       "\n",
       "                                                               top10 cnt  \n",
       "SK_ID_PREV                      [96, 96, 96, 96, 96, 96, 96, 96, 96, 96]  \n",
       "SK_ID_CURR             [295, 246, 245, 245, 245, 244, 237, 235, 234, ...  \n",
       "MONTHS_BALANCE         [186735, 186189, 186017, 185268, 184595, 18161...  \n",
       "CNT_INSTALMENT         [2129879, 1281635, 1081012, 912524, 614578, 49...  \n",
       "CNT_INSTALMENT_FUTURE  [1021934, 525573, 524893, 513463, 499025, 4699...  \n",
       "NAME_CONTRACT_STATUS   [7818577, 634872, 74625, 6110, 4591, 4221, 365...  \n",
       "SK_DPD                 [8284268, 18846, 15005, 12539, 10756, 9649, 84...  \n",
       "SK_DPD_DEF             [8444265, 19080, 12710, 10134, 8285, 6991, 583...  \n",
       "train                                                          [8543375]  "
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "EDA.df_info(df_train)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Shape: (1457983, 9)\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>DataType</th>\n",
       "      <th>#Nulls</th>\n",
       "      <th>#Uniques</th>\n",
       "      <th>Min</th>\n",
       "      <th>Mean</th>\n",
       "      <th>Max</th>\n",
       "      <th>Std</th>\n",
       "      <th>top10 val</th>\n",
       "      <th>top10 cnt</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>SK_ID_PREV</th>\n",
       "      <td>int64</td>\n",
       "      <td>0</td>\n",
       "      <td>135988</td>\n",
       "      <td>1000002.0</td>\n",
       "      <td>1.901623e+06</td>\n",
       "      <td>2843487.0</td>\n",
       "      <td>535303.381485</td>\n",
       "      <td>[2835402, 1057553, 1364606, 2696917, 1989782, ...</td>\n",
       "      <td>[96, 96, 96, 96, 96, 96, 96, 96, 96, 96]</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>SK_ID_CURR</th>\n",
       "      <td>int64</td>\n",
       "      <td>0</td>\n",
       "      <td>47808</td>\n",
       "      <td>100001.0</td>\n",
       "      <td>2.779391e+05</td>\n",
       "      <td>456250.0</td>\n",
       "      <td>103084.668568</td>\n",
       "      <td>[172612, 362661, 122102, 174805, 450672, 11924...</td>\n",
       "      <td>[247, 239, 232, 227, 227, 227, 226, 224, 221, ...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>MONTHS_BALANCE</th>\n",
       "      <td>int64</td>\n",
       "      <td>0</td>\n",
       "      <td>96</td>\n",
       "      <td>-96.0</td>\n",
       "      <td>-3.539035e+01</td>\n",
       "      <td>-1.0</td>\n",
       "      <td>26.138564</td>\n",
       "      <td>[-14, -12, -15, -11, -17, -13, -10, -16, -18, -9]</td>\n",
       "      <td>[30131, 30121, 30103, 30006, 29798, 29771, 297...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>CNT_INSTALMENT</th>\n",
       "      <td>float64</td>\n",
       "      <td>4208</td>\n",
       "      <td>65</td>\n",
       "      <td>1.0</td>\n",
       "      <td>1.741890e+01</td>\n",
       "      <td>92.0</td>\n",
       "      <td>11.935387</td>\n",
       "      <td>[12.0, 24.0, 10.0, 6.0, 18.0, 36.0, 8.0, 48.0,...</td>\n",
       "      <td>[366966, 235837, 162437, 152976, 112816, 93283...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>CNT_INSTALMENT_FUTURE</th>\n",
       "      <td>float64</td>\n",
       "      <td>4209</td>\n",
       "      <td>74</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.057620e+01</td>\n",
       "      <td>85.0</td>\n",
       "      <td>10.901077</td>\n",
       "      <td>[0.0, 6.0, 4.0, 5.0, 3.0, 2.0, 10.0, 1.0, 8.0,...</td>\n",
       "      <td>[164026, 89165, 88059, 86832, 82982, 77275, 71...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>NAME_CONTRACT_STATUS</th>\n",
       "      <td>object</td>\n",
       "      <td>0</td>\n",
       "      <td>8</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>['Active', 'Completed', 'Signed', 'Demand', 'R...</td>\n",
       "      <td>[1332542, 110011, 12635, 955, 870, 696, 271, 3]</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>SK_DPD</th>\n",
       "      <td>int64</td>\n",
       "      <td>0</td>\n",
       "      <td>2841</td>\n",
       "      <td>0.0</td>\n",
       "      <td>9.861880e+00</td>\n",
       "      <td>4108.0</td>\n",
       "      <td>124.708574</td>\n",
       "      <td>[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]</td>\n",
       "      <td>[1421863, 3026, 2353, 1864, 1594, 1397, 1142, ...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>SK_DPD_DEF</th>\n",
       "      <td>int64</td>\n",
       "      <td>0</td>\n",
       "      <td>903</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.070201e+00</td>\n",
       "      <td>3595.0</td>\n",
       "      <td>44.046021</td>\n",
       "      <td>[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]</td>\n",
       "      <td>[1443124, 3054, 1980, 1518, 1243, 1040, 796, 7...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>train</th>\n",
       "      <td>int64</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.000000e+00</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>[0]</td>\n",
       "      <td>[1457983]</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                      DataType  #Nulls  #Uniques        Min          Mean  \\\n",
       "SK_ID_PREV               int64       0    135988  1000002.0  1.901623e+06   \n",
       "SK_ID_CURR               int64       0     47808   100001.0  2.779391e+05   \n",
       "MONTHS_BALANCE           int64       0        96      -96.0 -3.539035e+01   \n",
       "CNT_INSTALMENT         float64    4208        65        1.0  1.741890e+01   \n",
       "CNT_INSTALMENT_FUTURE  float64    4209        74        0.0  1.057620e+01   \n",
       "NAME_CONTRACT_STATUS    object       0         8        NaN           NaN   \n",
       "SK_DPD                   int64       0      2841        0.0  9.861880e+00   \n",
       "SK_DPD_DEF               int64       0       903        0.0  1.070201e+00   \n",
       "train                    int64       0         1        0.0  0.000000e+00   \n",
       "\n",
       "                             Max            Std  \\\n",
       "SK_ID_PREV             2843487.0  535303.381485   \n",
       "SK_ID_CURR              456250.0  103084.668568   \n",
       "MONTHS_BALANCE              -1.0      26.138564   \n",
       "CNT_INSTALMENT              92.0      11.935387   \n",
       "CNT_INSTALMENT_FUTURE       85.0      10.901077   \n",
       "NAME_CONTRACT_STATUS         NaN            NaN   \n",
       "SK_DPD                    4108.0     124.708574   \n",
       "SK_DPD_DEF                3595.0      44.046021   \n",
       "train                        0.0       0.000000   \n",
       "\n",
       "                                                               top10 val  \\\n",
       "SK_ID_PREV             [2835402, 1057553, 1364606, 2696917, 1989782, ...   \n",
       "SK_ID_CURR             [172612, 362661, 122102, 174805, 450672, 11924...   \n",
       "MONTHS_BALANCE         [-14, -12, -15, -11, -17, -13, -10, -16, -18, -9]   \n",
       "CNT_INSTALMENT         [12.0, 24.0, 10.0, 6.0, 18.0, 36.0, 8.0, 48.0,...   \n",
       "CNT_INSTALMENT_FUTURE  [0.0, 6.0, 4.0, 5.0, 3.0, 2.0, 10.0, 1.0, 8.0,...   \n",
       "NAME_CONTRACT_STATUS   ['Active', 'Completed', 'Signed', 'Demand', 'R...   \n",
       "SK_DPD                                    [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]   \n",
       "SK_DPD_DEF                                [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]   \n",
       "train                                                                [0]   \n",
       "\n",
       "                                                               top10 cnt  \n",
       "SK_ID_PREV                      [96, 96, 96, 96, 96, 96, 96, 96, 96, 96]  \n",
       "SK_ID_CURR             [247, 239, 232, 227, 227, 227, 226, 224, 221, ...  \n",
       "MONTHS_BALANCE         [30131, 30121, 30103, 30006, 29798, 29771, 297...  \n",
       "CNT_INSTALMENT         [366966, 235837, 162437, 152976, 112816, 93283...  \n",
       "CNT_INSTALMENT_FUTURE  [164026, 89165, 88059, 86832, 82982, 77275, 71...  \n",
       "NAME_CONTRACT_STATUS     [1332542, 110011, 12635, 955, 870, 696, 271, 3]  \n",
       "SK_DPD                 [1421863, 3026, 2353, 1864, 1594, 1397, 1142, ...  \n",
       "SK_DPD_DEF             [1443124, 3054, 1980, 1518, 1243, 1040, 796, 7...  \n",
       "train                                                          [1457983]  "
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "EDA.df_info(df_test)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [],
   "source": [
    "obj_features = [c for c in df.columns if df[c].dtype=='O']"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\nrkJggg==\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7fab39387a58>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "col = list(EDA.split_seq(obj_features, 6))\n",
    "for c in col:\n",
    "    EDA.venn_diagram(df_train, df_test, c, (12, 7))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array(['Active', 'Completed', 'Returned to the store', 'Signed',\n",
       "       'Approved', 'Demand', 'Amortized debt', 'Canceled', 'XNA'],\n",
       "      dtype=object)"
      ]
     },
     "execution_count": 11,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df_train.NAME_CONTRACT_STATUS.unique()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array(['Completed', 'Active', 'Signed', 'Returned to the store',\n",
       "       'Approved', 'Demand', 'Amortized debt', 'Canceled'], dtype=object)"
      ]
     },
     "execution_count": 13,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df_test.NAME_CONTRACT_STATUS.unique()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7fab39782128>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "EDA.count_categories(df_train, obj_features, df2=df_test)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "9"
      ]
     },
     "execution_count": 14,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.groupby(['SK_ID_CURR', 'MONTHS_BALANCE']).size().max()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "7"
      ]
     },
     "execution_count": 15,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df_train.groupby(['SK_ID_CURR', 'MONTHS_BALANCE']).size().max()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "9"
      ]
     },
     "execution_count": 16,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df_test.groupby(['SK_ID_CURR', 'MONTHS_BALANCE']).size().max()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "ids = df.SK_ID_CURR.unique()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {
    "scrolled": false
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>SK_ID_PREV</th>\n",
       "      <th>SK_ID_CURR</th>\n",
       "      <th>MONTHS_BALANCE</th>\n",
       "      <th>CNT_INSTALMENT</th>\n",
       "      <th>CNT_INSTALMENT_FUTURE</th>\n",
       "      <th>NAME_CONTRACT_STATUS</th>\n",
       "      <th>SK_DPD</th>\n",
       "      <th>SK_DPD_DEF</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>7735592</th>\n",
       "      <td>1175665</td>\n",
       "      <td>442493</td>\n",
       "      <td>-47</td>\n",
       "      <td>18.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>Completed</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9048888</th>\n",
       "      <td>1175665</td>\n",
       "      <td>442493</td>\n",
       "      <td>-48</td>\n",
       "      <td>18.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>Active</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6284754</th>\n",
       "      <td>1175665</td>\n",
       "      <td>442493</td>\n",
       "      <td>-49</td>\n",
       "      <td>18.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>Active</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6785606</th>\n",
       "      <td>1175665</td>\n",
       "      <td>442493</td>\n",
       "      <td>-50</td>\n",
       "      <td>18.0</td>\n",
       "      <td>2.0</td>\n",
       "      <td>Active</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7163550</th>\n",
       "      <td>1175665</td>\n",
       "      <td>442493</td>\n",
       "      <td>-51</td>\n",
       "      <td>18.0</td>\n",
       "      <td>4.0</td>\n",
       "      <td>Active</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7197272</th>\n",
       "      <td>1175665</td>\n",
       "      <td>442493</td>\n",
       "      <td>-52</td>\n",
       "      <td>18.0</td>\n",
       "      <td>5.0</td>\n",
       "      <td>Active</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>772597</th>\n",
       "      <td>1175665</td>\n",
       "      <td>442493</td>\n",
       "      <td>-53</td>\n",
       "      <td>18.0</td>\n",
       "      <td>6.0</td>\n",
       "      <td>Active</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7091152</th>\n",
       "      <td>1175665</td>\n",
       "      <td>442493</td>\n",
       "      <td>-54</td>\n",
       "      <td>18.0</td>\n",
       "      <td>7.0</td>\n",
       "      <td>Active</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5395161</th>\n",
       "      <td>1175665</td>\n",
       "      <td>442493</td>\n",
       "      <td>-55</td>\n",
       "      <td>18.0</td>\n",
       "      <td>8.0</td>\n",
       "      <td>Active</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3062531</th>\n",
       "      <td>1175665</td>\n",
       "      <td>442493</td>\n",
       "      <td>-56</td>\n",
       "      <td>18.0</td>\n",
       "      <td>9.0</td>\n",
       "      <td>Active</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4768629</th>\n",
       "      <td>1175665</td>\n",
       "      <td>442493</td>\n",
       "      <td>-57</td>\n",
       "      <td>18.0</td>\n",
       "      <td>10.0</td>\n",
       "      <td>Active</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7869523</th>\n",
       "      <td>1175665</td>\n",
       "      <td>442493</td>\n",
       "      <td>-58</td>\n",
       "      <td>18.0</td>\n",
       "      <td>11.0</td>\n",
       "      <td>Active</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3889251</th>\n",
       "      <td>1175665</td>\n",
       "      <td>442493</td>\n",
       "      <td>-59</td>\n",
       "      <td>18.0</td>\n",
       "      <td>12.0</td>\n",
       "      <td>Active</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>12316</th>\n",
       "      <td>1175665</td>\n",
       "      <td>442493</td>\n",
       "      <td>-60</td>\n",
       "      <td>18.0</td>\n",
       "      <td>13.0</td>\n",
       "      <td>Active</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7198433</th>\n",
       "      <td>1175665</td>\n",
       "      <td>442493</td>\n",
       "      <td>-61</td>\n",
       "      <td>18.0</td>\n",
       "      <td>14.0</td>\n",
       "      <td>Active</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7090413</th>\n",
       "      <td>1175665</td>\n",
       "      <td>442493</td>\n",
       "      <td>-62</td>\n",
       "      <td>18.0</td>\n",
       "      <td>15.0</td>\n",
       "      <td>Active</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7304628</th>\n",
       "      <td>1175665</td>\n",
       "      <td>442493</td>\n",
       "      <td>-63</td>\n",
       "      <td>18.0</td>\n",
       "      <td>16.0</td>\n",
       "      <td>Active</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8967947</th>\n",
       "      <td>1175665</td>\n",
       "      <td>442493</td>\n",
       "      <td>-64</td>\n",
       "      <td>18.0</td>\n",
       "      <td>17.0</td>\n",
       "      <td>Active</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7735257</th>\n",
       "      <td>1175665</td>\n",
       "      <td>442493</td>\n",
       "      <td>-65</td>\n",
       "      <td>18.0</td>\n",
       "      <td>18.0</td>\n",
       "      <td>Active</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "         SK_ID_PREV  SK_ID_CURR  MONTHS_BALANCE  CNT_INSTALMENT  \\\n",
       "7735592     1175665      442493             -47            18.0   \n",
       "9048888     1175665      442493             -48            18.0   \n",
       "6284754     1175665      442493             -49            18.0   \n",
       "6785606     1175665      442493             -50            18.0   \n",
       "7163550     1175665      442493             -51            18.0   \n",
       "7197272     1175665      442493             -52            18.0   \n",
       "772597      1175665      442493             -53            18.0   \n",
       "7091152     1175665      442493             -54            18.0   \n",
       "5395161     1175665      442493             -55            18.0   \n",
       "3062531     1175665      442493             -56            18.0   \n",
       "4768629     1175665      442493             -57            18.0   \n",
       "7869523     1175665      442493             -58            18.0   \n",
       "3889251     1175665      442493             -59            18.0   \n",
       "12316       1175665      442493             -60            18.0   \n",
       "7198433     1175665      442493             -61            18.0   \n",
       "7090413     1175665      442493             -62            18.0   \n",
       "7304628     1175665      442493             -63            18.0   \n",
       "8967947     1175665      442493             -64            18.0   \n",
       "7735257     1175665      442493             -65            18.0   \n",
       "\n",
       "         CNT_INSTALMENT_FUTURE NAME_CONTRACT_STATUS  SK_DPD  SK_DPD_DEF  \n",
       "7735592                    0.0            Completed       0           0  \n",
       "9048888                    0.0               Active       0           0  \n",
       "6284754                    1.0               Active       1           1  \n",
       "6785606                    2.0               Active       0           0  \n",
       "7163550                    4.0               Active       0           0  \n",
       "7197272                    5.0               Active       0           0  \n",
       "772597                     6.0               Active       0           0  \n",
       "7091152                    7.0               Active       0           0  \n",
       "5395161                    8.0               Active       0           0  \n",
       "3062531                    9.0               Active       0           0  \n",
       "4768629                   10.0               Active       0           0  \n",
       "7869523                   11.0               Active       0           0  \n",
       "3889251                   12.0               Active       0           0  \n",
       "12316                     13.0               Active       0           0  \n",
       "7198433                   14.0               Active       0           0  \n",
       "7090413                   15.0               Active       0           0  \n",
       "7304628                   16.0               Active       0           0  \n",
       "8967947                   17.0               Active       0           0  \n",
       "7735257                   18.0               Active       0           0  "
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "tmp = df[df.SK_ID_CURR==np.random.choice(ids)]\n",
    "tmp"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.4"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
